package com.zyh.scs.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zyh.scs.admin.api.entity.UserBill;
import com.zyh.scs.admin.api.entity.UserTransaction;
import com.zyh.scs.admin.api.vo.BillExcelCardVO;
import com.zyh.scs.admin.api.vo.BillExcelCashVO;
import com.zyh.scs.admin.api.vo.BillExcelEntityVO;

import java.util.List;

/**
 * @author hwh
 * @ClassName: 账单管理api接口$
 * @Description: $
 * @Date $
 * @Version 1.0
 */
public interface UserBillService extends IService<UserBill> {

    /**
     * 分页查询账单管理
     *
     * @param page
     * @param beginTime
     * @param endTime
     * @param billType
     * @return
     */
    IPage getBillPage(Page page, String beginTime, String endTime, Integer billType);


    /**
     * 账单管理下载账单
     *
     * @param userId
     * @return
     */
    String getDownLoadExcel(Long userId);

    /**
     * 账单管理下载账单
     *
     * @param page
     * @param rechargeStream
     * @param thirdRechargeStream
     * @param beginTime
     * @param endTime
     * @param guid
     * @param billType            2为餐补 3为现金 4退款
     * @return
     */
    IPage<UserTransaction> getBillInfo(Page page, String rechargeStream, String thirdRechargeStream, String beginTime, String endTime, String guid, Integer billType);

    /**
     * 账单管理下载账单  钱包总览查看
     *
     * @param page
     * @param rechargeStream
     * @param thirdRechargeStream
     * @param beginTime
     * @param endTime
     * @param guid
     * @return
     */
    IPage<UserTransaction> getBillAllInfo(Page page, String rechargeStream, String thirdRechargeStream, String beginTime, String endTime, String guid);

    /**
     * 总览查看下载excel流水
     *
     * @param rechargeStream
     * @param thirdRechargeStream
     * @param beginTime
     * @param endTime
     * @param guid
     * @param billType            2为餐补 3为现金 4总览
     * @return
     */
    List<BillExcelEntityVO> getBillInfoExcel(String rechargeStream, String thirdRechargeStream, String beginTime, String endTime, String guid, Integer billType);

    /**
     * 餐补现金查看下载excel流水
     *
     * @param rechargeStream
     * @param thirdRechargeStream
     * @param beginTime
     * @param endTime
     * @param guid
     * @return
     */
    List<BillExcelCardVO> getCardExcel(String rechargeStream, String thirdRechargeStream, String beginTime, String endTime, String guid);

    /**
     * 现金查看下载excel流水
     *
     * @param rechargeStream
     * @param thirdRechargeStream
     * @param beginTime
     * @param endTime
     * @param guid
     * @return
     */
    List<BillExcelCashVO> getCashExcel(String rechargeStream, String thirdRechargeStream, String beginTime, String endTime, String guid);
}
